package com.ruoyi.rulengine.service;

import com.ruoyi.iotcommon.domain.DeviceDataMessage;
import com.ruoyi.rulengine.domain.Rule;
import com.ruoyi.rulengine.domain.RuleAction;
import com.ruoyi.rulengine.domain.RuleCondition;

import java.util.List;

// 该文件无用，当时写的思路，请使用IAsyncRuleEngineService
public interface IRuleEngineService {

    /**
     * 评估规则并执行动作
     *
     * @param rules      规则列表
     * @param deviceData 设备上报数据
     */
     void evaluateRules(List<Rule> rules, DeviceDataMessage deviceData);


    /**
     * 评估条件列表
     *
     * @param conditions 条件列表
     * @param logic      条件逻辑（AND 或 OR）
     * @param deviceData 设备上报数据
     * @return 是否满足条件
     */
     boolean evaluateConditions(List<RuleCondition> conditions, String logic, DeviceDataMessage deviceData);
    /**
     * 执行动作
     *
     * @param actions    动作列表
     * @param deviceData 设备上报数据
     */
     void executeActions(List<RuleAction> actions, DeviceDataMessage deviceData);
}
